package zzs.generalframework.console.core.authorization.authrole.service;

import java.util.List;

import zzs.generalframework.common.core.authorization.authrole.AuthRoleBO;
import zzs.generalframework.common.core.authorization.authrole.AuthRoleInfo;
import zzs.generalframework.console.common.exception.ConsoleException;
import zzs.generalframework.console.common.model.ConsoleReturnBO;

/**
 * @title
 * @description
 * @project zzs-console
 * @package zzs.generalframework.console.core.authorization.authrole.service
 * @author zzs
 * @date 2018年2月1日
 * @version 1.0
 */
public interface IAuthRoleService
{

	/**
	 * 保存权限角色信息
	 *
	 * @param authRole
	 * @return
	 */
	public ConsoleReturnBO saveAuthRole(AuthRoleBO authRoleBO);

	/**
	 * 保存权限角色信息列表
	 *
	 * @param authRoleBOList
	 * @return
	 * @throws ConsoleException
	 */
	public ConsoleReturnBO saveAuthRole(List<AuthRoleBO> authRoleBOList) throws ConsoleException;

	/**
	 * 获取权限角色信息
	 *
	 * @param authRoleInfo
	 * @return
	 */
	public ConsoleReturnBO getAuthRole(AuthRoleInfo authRoleInfo);

	/**
	 * 获取权限角色信息列表
	 *
	 * @param authRoleInfo
	 * @return
	 */
	public ConsoleReturnBO listAuthRole(AuthRoleInfo authRoleInfo);

	/**
	 * 更新权限角色信息
	 *
	 * @param authRoleBO
	 * @return
	 */
	public ConsoleReturnBO updateAuthRole(AuthRoleBO authRoleBO);

	/**
	 * 更新权限角色信息列表
	 *
	 * @param authRoleBOList
	 * @return
	 * @throws ConsoleException
	 */
	public ConsoleReturnBO updateAuthRole(List<AuthRoleBO> authRoleBOList) throws ConsoleException;

	/**
	 * 删除权限角色信息
	 *
	 * @param authRoleBO
	 * @return
	 */
	public ConsoleReturnBO removeAuthRole(AuthRoleBO authRoleBO);

	/**
	 * 删除权限角色信息列表
	 *
	 * @param authRoleBOList
	 * @return
	 * @throws ConsoleException
	 */
	public ConsoleReturnBO removeAuthRole(List<AuthRoleBO> authRoleBOList) throws ConsoleException;

	/**
	 * 统计权限角色信息
	 *
	 * @param authRoleBO
	 * @return
	 */
	public Long countAuthRole(AuthRoleBO authRoleBO);

}
